<?php

/***********************************************/
/*TITULO */
/***********************************************/
echo" <div class=\"pag_content\">
 	<div class=\"pag_content_title\">
		<div class=\"pag_title_cap\">Cap&iacute;tulo 6: </div>
		<div class=\"pag_title_cont\">	Administraci&oacute;n de Usuarios</div>
    </div>
    <div class=\"pag_content_body\">         
	<div class=\"contenido_principal\">	
		<br />";
/***********************************************/
/*TITULO PARRAFO */
/***********************************************/
echo "
	<div class=\"parrafo_titulo\">
	Auditar actividad
	</div>";

/***********************************************/
/*CONTENIDO*/
/***********************************************/
echo "
<div class=\"parrafo\" align=\"justify\">
Podemos configurar Oracle para que autdite la actividad de nuestra base de datos hasta en 4 niveles diferentes de profundidad. Los resultados de la auditoria podemos almacenarlos dentro de la base de datos o en ficheros dentro de nuestro sistema operativo. El parametro a modificar seria: AUDIT_TRAIL.
<br />
Para que lo guarde en base de datos:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; ALTER SYSTEM SET AUDIT_TRAIL=DB SCOPE=SPFILE;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Para que lo guarde en un fichero:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; ALTER SYSTEM SET AUDIT_TRAIL=OS SCOPE=SPFILE;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Como nos muestra el comando este marametro no se puede cambiar directamente en memoria por lo que tendremo que reiniciar nuestra base de datos para que el parametro tenga efecto. 
<br />
Si elegimos el sistema operativo como opcion para almacenar los resultados de nuestra auditoria, tendremos que utilizar el visualizador de eventos de windows para ver los resultados (Panel de control > Herramientas Administrativas > Visor de Eventos).
<br />
Si la opci&oacute;n es la base de datos, los resultados los consultaremos en la tabla SYS.AUD$ o DBA_AUDIT_TRAIL.
<br />
Una vez indicado donde vamos a almacenar los resultados de la auditoria tenemos que configurar que eventos vamos a auditar.
<br />
Ej. Auditamos eventos CREATE TABLE, DROP o TRUNCATE TABLE.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; AUDIT table;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
La auditoria la podemos restringir a un usuario.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; AUDIT table BY MOGU;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Podemos configurar que se guarde un evento por sesi&oacute;n o por acceso.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; AUDIT table BY SESSION;

sql&gt; AUDIT table BY ACCESS;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Configurar cuando el comando ha sido exitoso o se ha ejecutado con error.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; AUDIT table WITH SUCCESSFUL;

sql&gt; AUDIT table WITH NOT SUCCESSFUL;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Para ver que eventos se estan registrando en nuestra base de datos consultaremos la tabla DBA_STMT_AUDIT_OPTS.
<br />
Para deshabilitar eventos auditados utilizaremos:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; NOAUDIT table BY MOGU;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Otras opciones que nos pueden resultar importantes son:
</div>
<div class=\"parrafo_lista_sub\">	
-EXECUTE PROCEDURE: Registra cualquier procedimiento ejecutado.<br />
-INSERT TABLE.<br />
-LOCK TABLE: Cuando se realiza un bloqueo de una tabla.<br />
-SESSION: Cuando se inicia una nueva sesion.<br />
-TABLESPACE: create, drop o alter de un tablespace.<br />
</div>
<div class=\"parrafo\" align=\"justify\">
Tambien podemos auditar todas aquellas transacciones que requieran un determinado privilegio.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; AUDIT CREATE ANY TABLE.

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Al igual que en le caso anterior tambien podemos configurar esta auditoria a un determinado usuario, por acceso o por sesion. Para saber que privilegios se estan auditando consultaremos la tabla DBA_PRIV_AUDIT_OPTS.
<br />
Podemos auditar acciones sobre determinados objetos de nuestra base de datos.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; AUDIT select ON MOGU.MiTabla;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Para auditar un cierto comando sobre un determinado objeto cuando se ha ejecutado con error:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; AUDIT inser ON MOGU.MiTabla WITH NOT SUCCESSFUL;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Para saber que objetos estan siendo auditados consultaremos la tabla DBA_OBJ_AUDIT_OPTS.
<br />
Aunque dejemos de auditar un determinado evento los registros que se han almacenado en base de datos siguen presentes. Para purgar registros antiguos haremos:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; DELETE SYS.AUD\$ WHERE timestamp#&lt;SYSDATE-90;

</p></pre></blockquote>

<h3>FGA (Fine Grained auditing)</h3> 
<div class=\"parrafo\" align=\"justify\">
FGA permite auditar el acceso a los registros de una tabla basandose en el contenido del dato. Para poder configurar este tipo de auditoria utilizaremos el paquete DBMS_FGA.ADD_POLICY.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; DBMS_FGA.ADD_POLICY(object_schema=>'HR'
	,object_name=>'EMPLOYEES'
	,policy_name=>'COMPENSATION_AUD'
	,audit_column=>'SALARY, COMMISSION_PCT'
	,enable=>FALSE
	,statement_types=>'SELECT');
	
</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
En el ejemplo estamos creando una nueva politica COMPENSATION_AUD, basada en el comando select sobre la tabla EMPLOYESS y cada vez que se haga referencia a la columna SALARY o COMMISION_PCT. De momento esta politica de auditoria esta desactivada.
<br />
Para activar una politica de auditoria haremos:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; DBMS_FGA.ENABLE_POLICY(object_schema=>'HR'
	,object_name=>'EMPLOYEES'
	,policy_name=>'COMPENSATION_AUD');

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Para deshabilitar una politica de auditoria haremos:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; DBMS_FGA.DISABLE_POLICY(object_schema=>'HR'
	,object_name=>'EMPLOYEES'
	,policy_name=>'COMPENSATION_AUD');

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Para borrar una politica de auditoria haremos:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\"><pre>
<p>sql&gt; DBMS_FGA.DROP_POLICY(object_schema=>'HR'
	,object_name=>'EMPLOYEES'
	,policy_name=>'COMPENSATION_AUD');

</p></pre></blockquote>

<div class=\"parrafo\" align=\"justify\">
Para saber las diferentes politicas de auditoria que tiene nuestra base de datos consultaremos la tabla DBA_AUDIT_POLICIES.
<br />
Para acceder a los registros almacenados por FGA consultaremos la tabla DBA_FGA_AUDIT_TRAIL.
</div>

";

/***********************************************/
/*PIE*/
/***********************************************/
echo"
	</div> 		 
    </div>
    <div class=\"pag_content_footer\">
    </div>
    <div class=\"pag_content_nav\">		
		<div class=\"pag_contenido_left\">
			<a  class=\"cap_next\" href=\"oca_main.php?cap=6&part=2\">	&lt; Anterior </a>
		 </div>
		<div class=\"pag_contenido_right\" align=\"right\">	
			<a  class=\"cap_next\" href=\"oca_main.php?cap=7&part=0\">	Cap&iacute;tulo 7 &gt;</a>
		 </div>
	</div>      
</div>
";

?>